#include "junix.h"
#include <boost/functional/hash.hpp>

struct A{};

int main()
{
	boost::hash<std::string> string_hash;
	boost::hash<int> int_hash;
	boost::hash<const char*> char_hash;
	boost::hash<std::vector<int> > vect_hash;
	boost::hash<int* > ints_hash;
	boost::hash<A*> A_hash;

	std::size_t h = string_hash("Hash me");
	std::cout<<h<<std::endl;
	std::cout<<int_hash(88)<<std::endl;
	std::cout<<char_hash("Hash me")<<std::endl;
	std::cout<<vect_hash(std::vector<int>(12))<<std::endl;

	A *pa = new A, *pb = new A;
	std::cout<<A_hash(pa)<<std::endl<<A_hash(pb)<<std::endl;
	std::cout<<A_hash(pa)<<std::endl<<A_hash(pb)<<std::endl;
}

